import cv2
import numpy as np
from matplotlib import pyplot as plt

img_rgb = cv2.imread('image-2.png')
# img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
# img_gray = cv2.imread('image-2.png', 0)
template = cv2.imread('hiddenmine.png')
print(template.shape[0:2])
w, h = template.shape[0:2]

res = cv2.matchTemplate(img_rgb, template, cv2.TM_CCOEFF_NORMED)
# res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF)
# res = cv2.matchTemplate(img_gray, template, cv2.TM_SQDIFF_NORMED)
# res = cv2.matchTemplate(img_gray, template, cv2.TM_SQDIFF)

threshold = 0.90

# umpy.where(condition[, x, y])
# Return elements, either from x or y, depending on condition.
# If only condition is given, return condition.nonzero().
loc = np.where(res >= threshold)

for pt in zip(*loc[::-1]):
    print(pt)
    cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
print(list(zip(*loc[::-1])))
cv2.imwrite('res.png', img_rgb)
cv2.imshow("", img_rgb)
cv2.waitKey(0)
